package com.tedu.API.thread;

/**
 * Thread类    线程同步
 * join():  【用于线程之间的同步】
 *   作用: 允许在一个线程上等待另一个线程执行完毕，再执行自己
 *   用法: 线程名.join(), 用在另一个线程上
 *   线程同步: 执行线程有先后顺序
 *   线程异步: 执行线程没有顺序, 各自完成各自线程的功能!
 *
 *   模拟: 下载图片[1%~100%下载进度]，显示图片功能【先下载再查看】
 *         线程  download  功能: 下载进度条功能  1%  --- 100%   100毫秒
 *         线程  show      功能: 显示图片
 */
public class Thread_join {
    public static void main(String[] args) {
        //下载线程
    Thread download=new Thread(()->{
        for (int i=0;i<=100;i++){
            System.out.println("下载进度: "+i+"%");
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });
    download.start();

    //显示线程
    Thread show=new Thread(()->{
        try {
            download.join();  //下载完毕之后，调显示的线程
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("图片下载成功，显示图片~");
    });
    show.start();
}
}
